package com.hitqz.robot.driver.dto;

import lombok.Builder;
import lombok.Data;

@Data
@Builder
public class GfRobotStatus {

    String robotSerial;//机器人序列号 4byte
    short reachStatus ;//上报心跳间隔时间 单位：毫秒
    int qdlSpeed;//驱动轮速度（R/min） 4byte
    int gsSpeed;//滚刷速度（R/min） 4byte
    float qdlMotorCurrent;//驱动轮电机电流（A） 4byte
    float gsMotorCurrent;//滚刷电机电流（A） 4byte
    int qdlMotorDis;//驱动轮电机里程计 4byte
    int gsMotorDis;//滚刷电机里程计 4byte
    int qdlMotorErr;//驱动轮电机故障状态 4byte
    int gsMotorErr;//滚刷电机故障状态 4byte
    short power ;//电量百分比（0%-100%）
    float voltage ;//电压（传输比例100）：V
    float current ;//电流（传输比例100）：A
    float ratedCapacity ;//额定容量（传输比例10）
    short temperature ;//温度（传输比例1）
    short currentDirection ;//电流方向（0是放电，1为充电）
    short directionInfo ;//方向信息 0x01：向左正向方向 0x02：向右反向方向
    byte workNum ;//当前工作次数
    byte workStatus ;//机器人工作状态 0x00：机器空闲  0x01：机器工作 0x10：电机堵转 0x11：通讯异常 0x12：电量过低 0x20：进入程序状态 0x21：程序升级中  0x22：程序升级完成
    byte chipTemperature ;//芯片温度
    byte psStatus ;//光电传感器状态
    byte psErrStatus ;//光电传感器堵转触发状态
    int psRunTime;//光电避障运行计数时间 4byte
    byte psOpenStatus ;//光电避障开关状态 0x01：设置开启 0x02：设置关闭
    int psSetTime;//光电避障上位机设置时间 4byte
    byte leftProximitySwitchTriggeringStatus ;//左边接近开关触发状态（起点） 0x00：接近开关触发  0x01：接近开关未触发
    byte rightProximitySwitchTriggeringStatus ;//右边接近开关触发状态（终点） 0x00：接近开关触发 0x01：接近开关未触发
    float robotSpeed ;//机器人行走速度换算 单位m/s（放大100000倍） 4byte
    byte forwardStatus;//正向运行（机器从左向右运行）  0x00：机器未正向运行  0x01：机器正在正向运行
    byte reverseStatus ;//逆向运行（机器从右向左运行） 0x00：机器未逆向运行 0x01：机器正在逆向运行
    byte putterUpLimit;//推杆上限位
    byte putterDownLimit;//推杆下限位
    byte putterPE0Enable;//推杆PE0使能
    byte putterPE1Enable;//推杆PE1使能
    byte cameraAndWiperEnable;//相机与雨刷使能
    byte wiperWorkStatus;//雨刷工作状态
    byte runningDriverEnable;//行走电机、编码器、漫反射使能状态
    byte gsDriverEnable;//滚刷电机使能状态
    byte ipcEnable;//工控机使能状态
    short panelSn;//光伏板点位（起点为0）
    int mileage;//编码器编码值（起点为0，会有一定误差）
}
